package cn.sczhyt.modules.sys.controller;

import java.util.Arrays;
import java.util.Map;

import cn.sczhyt.common.annotation.SysLog;
import cn.sczhyt.common.utils.UUIDUtils;
import cn.sczhyt.common.validator.ValidatorUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import cn.sczhyt.modules.sys.entity.SysScoreEntity;
import cn.sczhyt.modules.sys.service.SysScoreService;
import cn.sczhyt.common.utils.PageUtils;
import cn.sczhyt.common.utils.R;



/**
 * 分数配置
 * @author luojialin
 * @email 78357966@qq.com
 * @date 2020-05-28 16:44:09
 */
@Api(tags = "分数配置")
@RestController
@RequestMapping("sys/sysscore")
public class SysScoreController extends AbstractController{
    @Autowired
    private SysScoreService sysScoreService;

    /**
     * 列表
     */
    @ApiOperation("列表")
    @RequestMapping("/list")
    @RequiresPermissions("sys:sysscore:list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = sysScoreService.queryPage(params);

        return R.ok().put("data", page);
    }
    /**
     * 信息
     */
    @ApiOperation("信息")
    @GetMapping("/info/{id}")
    @RequiresPermissions("sys:sysscore:info")
    public R info(@PathVariable("id") String id){
        SysScoreEntity sysScore = sysScoreService.getById(id);

        return R.ok().put("data", sysScore);
    }

    /**
     * 保存
     */
    @ApiOperation("保存")
    @SysLog("保存分值类型")
    @PostMapping("/save")
    @RequiresPermissions("sys:sysscore:save")
    public R save(@RequestBody SysScoreEntity sysScore){
        sysScore.setId(UUIDUtils.getUUID());
        sysScoreService.save(sysScore);

        return R.ok().put("data",sysScore);
    }

    /**
     * 只修改普通信息
     */
    @ApiOperation("只修改普通信息")
    @SysLog("修改得分类型")
    @PostMapping("/update")
    @RequiresPermissions("sys:sysscore:update")
    public R update(@RequestBody SysScoreEntity sysScore){
        ValidatorUtils.validateEntity(sysScore);
        sysScoreService.updateById(sysScore);
        
        return R.ok().put("data",sysScore);
    }

    /**
     * 删除
     * ["id1","id2"]
     */
    @ApiOperation("删除")
    @SysLog("删除分值类型")
    @PostMapping("/delete")
    @RequiresPermissions("sys:sysscore:delete")
    public R delete(@RequestBody String[] ids){
        sysScoreService.removeByIds(Arrays.asList(ids));
        return R.ok();
    }

}
